Нисхідний синтаксичний аналіз

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лекція
Предмет:
Інші

Частина тексту файла

Низхідний синтаксичний аналіз Загальна характеристика і проблеми низхідного аналізу При низхідному синтаксичному аналізі вивід для заданого вхідного ланцюжка будують, виходячи з початкового символу граматики (аксіоми), тобто побудова дерева синтаксичного розбору починається з кореня і розгортається до листя. Для цього аналізуються декілька перших символів вхідного ланцюжка, і приймається рішення, яке саме правило для аксіоми варто застосувати, а після цього робиться спроба розпізнати елементи правої частини цього правила, визначаючи їх як проміжні цілі (підцілі). Нехай вхідний рядок має вигляд  EMBED Equation.3 . Припустимо, що даний рядок належить вхідній мові, тому повинен існувати вивід  EMBED Equation.3 . Нехай для аксіоми вибрано правило  EMBED Equation.3 , отже, робиться припущення, що  EMBED Equation.3 . Якщо серед символів  EMBED Equation.3  є термінальні символи, то такі самі термінальні символи повинні повинні бути і у рядку  EMBED Equation.3 , розбиваючи вхідний рядок на частини. Кожен з нетермінальних символів  EMBED Equation.3  визначає підціль.  EMBED Equation.3  (ланцюжок  EMBED Equation.3  знаходиться між розпізнаними термінальними символами). Пошук підцілі приводить до пошуку допоміжних підцілей і т.д. до того часу, поки не приводить до порівняння символів аналізованого ланцюжка з деякими термінальними символами, після чого робиться висновок, чи досягнута загальна мета (чи належить ланцюжок породжуваній мові). Коли розпізнані всі підцілі, тоді розпізнана і загальна ціль. Якщо деяку підціль розпізнати не вдається, потрібно повернутись на крок назад і сформувати нову підціль (якщо було декілька можливих варіантів формування підцілі). Процес завершується або тоді, коли знайдено потрібний вивід, або встановлено, що такого виводу не існує (мета недосяжна). Характерна риса методів низхідного розбору полягає у тому, що стан алгоритму (поточна підціль) використовується як допоміжна інформація при прийнятті рішення. Розпізнавання підцілей виконується зліва направо. Приклад. Нехай задано граматику  EMBED Equation.3  Побудувати дерево виводу для ланцюжка  EMBED Equation.3 . Виходячи з припущення, що рядок належить породжуваній мові, доходимо висновку про існування виводу  EMBED Equation.3  або виводу  EMBED Equation.3  (два можливих варіанти). Якщо припустити, що  EMBED Equation.3 , то формуються дві підцілі  EMBED Equation.3  і  EMBED Equation.3 , які розпізнаються незалежно одна від одної. Так, з  EMBED Equation.3  випливає, що  EMBED Equation.3  або  EMBED Equation.3 . Очевидно, що твердження  EMBED Equation.3  є неправильним. Залишається  EMBED Equation.3 , тобто  EMBED Equation.3 . Таким чином, підціль  EMBED Equation.3  розпізнано. Аналогічно розпізнаємо підціль  EMBED Equation.3 . У загальному випадку, у процесі низхідного аналізу, виникають такі проблеми. 1. Ціль (підціль) визначається, використовуючи правило з лівою рекурсією. Якщо  EMBED Equation.3  − ціль, і перше правило для  EMBED Equation.3  має вигляд  EMBED Equation.3 , то у відповідності з даним методом буде сформовано підціль  EMBED Equation.3 . У свою чергу, допоміжною підціллю знову буде  EMBED Equation.3  і т.д. Таким чином, для застосування методу низхідного аналізу, потрібно буде перетворити граматику, щоб усунути ліву рекурсію. 2. Якщо для нетермінальних символів є декілька альтернативних правил виводу  EMBED Equation.3  Як вгадати, яким з ланцюжків  EMBED Equation.3  потрібно замінити нетермінальний символ  EMBED Equation.3 ? Загального методу немає. Є деякі рекомендації. Впорядкувати правила так, щоб найбільш ймовірні альтернативи вибирались першими. Зазвичай першою вибирають найдовшу альтернативу. Але у тому випадку, коли вхідний рядок містить помилку, все одно доведеться перебрати всі альтернативи. Заглядати вперед на 1-2 символи, що дозволяє точн...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини